package cl.loso.melon.server.action;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import cl.loso.melon.server.model.NegocioLVS;
import cl.loso.melon.server.negocio.NegocioLVSBO;
import cl.loso.melon.server.persistencia.NegocioLVSDAO;

import com.opensymphony.xwork2.ActionSupport;

public class NegocioLVSAction extends ActionSupport {
	private static Log log = LogFactory.getLog(ItemSVLAction.class);
	private static final long serialVersionUID = 1L;
	private String id;
	private String nombre;
	private NegocioLVS negocioLVS;
	private List<NegocioLVS> negocioList;
	private boolean existeVisita;
	private boolean existeNegocio;

	public String obtenerNegocio() {
		try {
			negocioList = NegocioLVSBO.obtenerNegocioLVS();
		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String guardarNegocio() {
		try {
			Date date = Calendar.getInstance().getTime();
			DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
			String today = formatter.format(date);
			// / validar si son iguales
			if (NegocioLVSBO.buscarNombre(nombre)) {
				NegocioLVS negocioLVS = new NegocioLVS(nombre, today);
				NegocioLVSBO.guardarNegocioLVS(negocioLVS);
				existeNegocio = false;
			} else {
				existeNegocio = true;
			}
		} catch (Exception e) {
			log.error(e);
		}

		return ActionSupport.SUCCESS;
	}

	public String editarNegocio() {
		try {
			negocioLVS = NegocioLVSBO.editarNegocioLVS(id);
		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String actualizarNegocio() {
		try {
			Date date = Calendar.getInstance().getTime();
			DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
			String today = formatter.format(date);

			NegocioLVSBO.actualizarNegocioLVS(new NegocioLVS(Long.valueOf(id),
					nombre, today));

		} catch (Exception e) {
			log.error(e);
		}

		return ActionSupport.SUCCESS;
	}

	public String borrarNegocio() {
		try {
			if (!NegocioLVSDAO.existeVisita(id)) {
				NegocioLVSBO.borrarNegocioLVS(id);
				existeVisita = false;
			} else {
				existeVisita = true;
			}

		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public NegocioLVS getNegocioLVS() {
		return negocioLVS;
	}

	public void setNegocioLVS(NegocioLVS negocioLVS) {
		this.negocioLVS = negocioLVS;
	}

	public List<NegocioLVS> getNegocioList() {
		return negocioList;
	}

	public void setNegocioList(List<NegocioLVS> negocioList) {
		this.negocioList = negocioList;
	}

	public boolean isExisteVisita() {
		return existeVisita;
	}

	public void setExisteVisita(boolean existeVisita) {
		this.existeVisita = existeVisita;
	}

	public boolean isExisteNegocio() {
		return existeNegocio;
	}

	public void setExisteNegocio(boolean existeNegocio) {
		this.existeNegocio = existeNegocio;
	}
}
